产品动态

您的位置: 首页产品动态

最新技术更多

技术指南 | Web3.js基于以太坊的Javascript API

作者:区块链研究实验室发布时间:2019-10-24

 

web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互。 web3的JavaScript库能够与以太坊区块链交互。 它可以检索用户帐户,发送交易,与智能合约交互等。

 

Version : 1.0.0-beta.36

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/79397389480723431948493274840453/20191024111901617.jpg

 

Web3.js API类型

 

eth:Etherum区块链相关方法;

net:节点的网络状态;

personal:帐户功能和发送;

db:获取/放置本地LevelDB;

shh:使用Whisper的P2P消息传递;

 

安装Web3.js

 

node

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/96511562739764654238815709255286/20191024112024804.png

 

实例化web3

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/91183307644237857172977739607005/20191024112049992.png

 

首先,我们检查是否使用的dapp浏览器或更新版本的MetaMask,将以太坊提供程序注入到window object中。 如果是这样,我们使用它来创建我们的web3 object,但我们还需要使用Ethereum.enable()显式请求访问帐户。

 

如果以ethereum object不存在,我们将检查注入的web3实例。 如果它存在,则表示我们正在使用较旧的dapp浏览器(如Mist或较旧版本的MetaMask)。 如果是这样,我们可以获取到它的提供者并使用它来创建我们的web3 object。

 

如果没有注入web3实例,我们将根据本地提供程序创建web3对象。 (这种后备适用于开发环境,但不安全且不适合生产环境。)

 

Web3.js的例子

 

PS:不推荐使用web3.version.getNode。

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/40150318864633035182053375243315/20191024112136585.png

 

余额

检查用户的余额

 

 web3.eth.getAccounts:从以太坊节点获取帐户,不推荐使用web3.eth.accounts。

 web3.eth.getBalance:获取帐户的余额。

 web3.utils.fromWei:将wei转换为ether,不推荐使用web3.fromWei。

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/55713495459884856507137580725158/20191024112230976.png

 

转移

将以太网从“A”转移到“B”

 

txnObject(事务对象)是web3.eth.sendTransaction的第一个参数。 txnObject由JSON组成。

 

from:String - 发送帐户的地址。

 

to:String - 目标钱包地址。

 

value:Number | String | BigNumber - (可选)您希望发送到目标地址的以太网的数量。

 

gas:Number | String | BigNumber - (可选,默认:待定)用于交易的gas量(未使用的gas将被退还)。

 

gasPrice:Number | String | BigNumber - (可选,默认:待定)wei中此交易的gas价格,默认为平均网络gas价格。

 

data:String - (可选)包含消息的关联数据的字节字符串,或者在合同创建事务的情况下,初始化代码。

 

nonce:Number - (可选)nonce的整数。 这允许覆盖使用相同nonce的自己的挂起事务。

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/52905750450258027352175425589612/20191024112332679.png

 

实践练习

我使用上面的方法制作了一个网页。

 获取以太坊节点信息

 获得用户的余额

 转移以太币

 

https://attachfiles.oss-cn-beijing.aliyuncs.com/attachFiles/p2p_article/p2p_article/84744006465757477162511897562071/20191024112446445.jpg

 

您将使用MetaMask或Ganache。 我建议你使用Ganache,这是一个用于以太坊开发的个人区块链,可用于部署合同,开发应用程序和运行测试。 如果您还没有安装,请下载Ganache并双击该图标安装应用程序。 这将生成在端口7545上本地运行的区块链同时将端口更改为8545。

 

(来源:公众号:区块链研究实验室)

 

联系我们

400-090-3910

(北京总部:全国统一咨询热线)

北京地址:北京市朝阳区领地OFFICE1号楼A座1403

上海分部:13911340419

上海地址:上海市宝山区泸太路6395号1_2层B区2440室

广州分部:13161766437

广州地址:广州市天河区广汕一路715号2号楼1-7楼405-5房

关注我们 了解最新动态消息
关注微信
关注微博
专题子站: